#Boa:Frame:Frame1

import wx
import wx.grid
import consultasBD
import utiles
from decimal import Decimal

def create(parent):
    return Frame1(parent)

[wxID_FRAME1, wxID_FRAME1BUTTON1, wxID_FRAME1BUTTON2, wxID_FRAME1BUTTON3, 
 wxID_FRAME1BUTTON4, wxID_FRAME1BUTTON5, wxID_FRAME1DATEPICKERCTRL1, 
 wxID_FRAME1DATEPICKERCTRL2, wxID_FRAME1GRID1, wxID_FRAME1GRID2, 
 wxID_FRAME1PANEL1, wxID_FRAME1RADIOBUTTON1, wxID_FRAME1RADIOBUTTON2, 
 wxID_FRAME1STATICTEXT1, wxID_FRAME1STATICTEXT2, wxID_FRAME1STATICTEXT3, 
 wxID_FRAME1STATICTEXT4, wxID_FRAME1STATICTEXT5, wxID_FRAME1TEXTCTRL1, 
 wxID_FRAME1TEXTCTRL2, wxID_FRAME1TEXTCTRL3, 
] = [wx.NewId() for _init_ctrls in range(21)]

class Frame1(wx.Frame):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
              pos=wx.Point(21, 29), size=wx.Size(834, 557),
              style=wx.DEFAULT_FRAME_STYLE, title='Devoluciones: LISTAR')
        self.SetClientSize(wx.Size(826, 530))

        self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self,
              pos=wx.Point(0, 0), size=wx.Size(826, 530),
              style=wx.TAB_TRAVERSAL)

        self.staticText4 = wx.StaticText(id=wxID_FRAME1STATICTEXT4,
              label='ID Proveedor', name='staticText4', parent=self.panel1,
              pos=wx.Point(16, 8), size=wx.Size(64, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL2, name='textCtrl2',
              parent=self.panel1, pos=wx.Point(16, 24), size=wx.Size(80, 21),
              style=0, value='')

        self.textCtrl2 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL3, name='textCtrl3',
              parent=self.panel1, pos=wx.Point(96, 24), size=wx.Size(208, 21),
              style=0, value='')

        self.staticText5 = wx.StaticText(id=wxID_FRAME1STATICTEXT5,
              label='Nombre', name='staticText5', parent=self.panel1,
              pos=wx.Point(96, 8), size=wx.Size(37, 13), style=0)

        self.button1 = wx.Button(id=wxID_FRAME1BUTTON1,
              label='Buscar Proveedor', name='button1', parent=self.panel1,
              pos=wx.Point(96, 48), size=wx.Size(104, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnBuscarProveedor,
              id=wxID_FRAME1BUTTON1)

        self.radioButton1 = wx.RadioButton(id=wxID_FRAME1RADIOBUTTON1,
              label='buscar por Fecha', name='radioButton1', parent=self.panel1,
              pos=wx.Point(310, 8), size=wx.Size(112, 13), style=0)
        self.radioButton1.SetValue(False)
        self.radioButton1.Bind(wx.EVT_RADIOBUTTON, self.OnRadio1,
              id=wxID_FRAME1RADIOBUTTON1)

        self.staticText1 = wx.StaticText(id=wxID_FRAME1STATICTEXT1,
              label='Fecha Inicio', name='staticText1', parent=self.panel1,
              pos=wx.Point(312, 24), size=wx.Size(57, 13), style=0)

        self.datePickerCtrl1 = wx.DatePickerCtrl(id=wxID_FRAME1DATEPICKERCTRL1,
              name='datePickerCtrl1', parent=self.panel1, pos=wx.Point(312, 40),
              size=wx.Size(80, 21), style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
        self.datePickerCtrl1.Enable(False)

        self.staticText2 = wx.StaticText(id=wxID_FRAME1STATICTEXT2,
              label='Fecha Final', name='staticText2', parent=self.panel1,
              pos=wx.Point(392, 24), size=wx.Size(54, 13), style=0)

        self.datePickerCtrl2 = wx.DatePickerCtrl(id=wxID_FRAME1DATEPICKERCTRL2,
              name='datePickerCtrl2', parent=self.panel1, pos=wx.Point(392, 40),
              size=wx.Size(80, 21), style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
        self.datePickerCtrl2.Enable(False)

        self.radioButton2 = wx.RadioButton(id=wxID_FRAME1RADIOBUTTON2,
              label='buscar por Nro', name='radioButton2', parent=self.panel1,
              pos=wx.Point(476, 8), size=wx.Size(96, 13), style=0)
        self.radioButton2.SetValue(False)
        self.radioButton2.Bind(wx.EVT_RADIOBUTTON, self.OnRadio2,
              id=wxID_FRAME1RADIOBUTTON2)

        self.staticText3 = wx.StaticText(id=wxID_FRAME1STATICTEXT3,
              label='Nro Devolucion', name='staticText3', parent=self.panel1,
              pos=wx.Point(480, 24), size=wx.Size(72, 13), style=0)

        self.textCtrl3 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL1, name='textCtrl1',
              parent=self.panel1, pos=wx.Point(480, 40), size=wx.Size(88, 21),
              style=0, value='')
        self.textCtrl3.Enable(False)

        self.button2 = wx.Button(id=wxID_FRAME1BUTTON2, label='Buscar',
              name='button2', parent=self.panel1, pos=wx.Point(576, 8),
              size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnBuscar, id=wxID_FRAME1BUTTON2)

        self.button3 = wx.Button(id=wxID_FRAME1BUTTON3, label='Limpiar',
              name='button3', parent=self.panel1, pos=wx.Point(658, 8),
              size=wx.Size(75, 23), style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnLimpiar, id=wxID_FRAME1BUTTON3)

        self.button5 = wx.Button(id=wxID_FRAME1BUTTON5, label='Imprimir',
              name='button5', parent=self.panel1, pos=wx.Point(740, 8),
              size=wx.Size(75, 23), style=0)
        self.button5.Enable(False)
        self.button5.Bind(wx.EVT_BUTTON, self.OnImprimir, id=wxID_FRAME1BUTTON5)

        self.button4 = wx.Button(id=wxID_FRAME1BUTTON4, label='Salir',
              name='button4', parent=self.panel1, pos=wx.Point(740, 40),
              size=wx.Size(75, 23), style=0)
        self.button4.Bind(wx.EVT_BUTTON, self.OnSalir, id=wxID_FRAME1BUTTON4)

        self.grid1 = wx.grid.Grid(id=wxID_FRAME1GRID1, name='grid1',
              parent=self.panel1, pos=wx.Point(16, 80), size=wx.Size(800, 168),
              style=0)
        self.grid1.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK,
              self.OnDobleClickGrid1)

        self.grid2 = wx.grid.Grid(id=wxID_FRAME1GRID2, name='grid2',
              parent=self.panel1, pos=wx.Point(16, 248), size=wx.Size(800, 272),
              style=0)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.fila = 0
        self.crearGrillas()

    def ajustarAnchoColumnas(self):
        for y in xrange(self.grid1.GetNumberCols()):
            self.grid1.AutoSizeColumn(y,True)
        for y in xrange(self.grid1.GetNumberCols()):
            self.grid2.AutoSizeColumn(y,True)

    def crearGrillas(self):
        #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
        #0            1      2      3     4        5     6
        columnas = ['Cod.\nProveedor','Nombre','Nro.Doc.','Fecha','Cantidad\nProductos','Monto','Motivo']
        self.grid1.CreateGrid(1,len(columnas))
        for i, col in enumerate(columnas):
            self.grid1.SetColLabelValue(i, col)
        self.grid1.EnableEditing(False)
        self.grid1.SetSelectionMode(wx.grid.Grid.wxGridSelectRows)
        self.grid1.Refresh()
        #CodArt,PTC,CodSussan,Talle,Color,Cantidad,Monto
        #0      1   2         3     4     5        6
        columnas = ['Cod.Art.\nProveedor','P.T.C.','Codigo\nSussan','Descripcion','Talle','Color','Cantidad','Monto']
        self.grid2.CreateGrid(1,len(columnas))
        for i, col in enumerate(columnas):
            self.grid2.SetColLabelValue(i, col)
        self.grid2.EnableEditing(False)
        self.grid2.SetSelectionMode(wx.grid.Grid.wxGridSelectRows)
        self.grid2.Refresh()

        self.ajustarAnchoColumnas()

    def OnSalir(self, event):
        self.Close()

    def OnLimpiar(self, event, saltear = True):
        self.grid1.ClearGrid()
        for fil in xrange(self.grid1.GetNumberRows()):
            self.grid1.DeleteRows()
        self.grid1.AppendRows()
        self.grid2.ClearGrid()
        for fil in xrange(self.grid2.GetNumberRows()):
            self.grid2.DeleteRows()
        self.grid2.AppendRows()
        if saltear:
            self.textCtrl1.SetLabel("")
            self.textCtrl2.SetLabel("")
            self.radioButton1.SetValue(False)
            self.datePickerCtrl1.Enable(False)
            self.datePickerCtrl2.Enable(False)
            self.radioButton2.SetValue(False)
            self.button5.Enable(False)
            self.textCtrl3.SetLabel("")
            self.textCtrl3.Enable(False)
            self.textCtrl1.SetFocus()

    def OnRadio1(self, event):
        if self.radioButton1.GetValue():
            self.datePickerCtrl1.Enable(True)
            self.datePickerCtrl2.Enable(True)
            self.textCtrl3.Enable(False)
        else:
            self.datePickerCtrl1.Enable(False)
            self.datePickerCtrl2.Enable(False)
            self.textCtrl3.Enable(True)

    def OnRadio2(self, event):
        if self.radioButton2.GetValue():
            self.textCtrl3.Enable(True)
            self.datePickerCtrl1.Enable(False)
            self.datePickerCtrl2.Enable(False)
        else:
            self.textCtrl3.Enable(False)
            self.datePickerCtrl1.Enable(True)
            self.datePickerCtrl2.Enable(True)

    def OnBuscarProveedor(self, event):
        if self.textCtrl1.GetValue() != "":
            r1 = "SELECT idproveedor,nombre "
            r2 = "FROM proveedor WHERE idproveedor = '"+self.textCtrl1.GetValue()+"' "
            consultaSQL = r1+r2
            resultado = consultasBD.ordenCrudaDict(consultaSQL)
            if resultado != ():
                proveedor = resultado[0]
                self.textCtrl1.SetLabel(proveedor["idproveedor"])
                self.textCtrl2.SetLabel(proveedor["nombre"])
                self.button2.SetFocus()
                return
            self.textCtrl1.SetLabel("")
            self.textCtrl1.SetFocus()
            return
        if self.textCtrl2.GetValue() != "":
            consultaSQL = "SELECT idproveedor,nombre FROM proveedor WHERE nombre LIKE '%"+self.textCtrl2.GetValue()+"%' "
            resultado = consultasBD.ordenCrudaDict(consultaSQL)
            if resultado != () and len(resultado)==1:
                proveedor = resultado[0]
                self.textCtrl1.SetLabel(proveedor["idproveedor"])
                self.textCtrl2.SetLabel(proveedor["nombre"])
                self.button2.SetFocus()
                return
        import BuscaProveedor2
        ventana = BuscaProveedor2.Dialog1(self,self.textCtrl2.GetLabel())
        try:
            ventana.ShowModal()
            eleccion = ventana.getSeleccion()
        finally:
            ventana.Destroy()
        if eleccion.split(" / ") != ['']:
            self.textCtrl1.SetValue(eleccion.split(" / ")[1])
            self.textCtrl2.SetValue(eleccion.split(" / ")[0])
        self.button2.SetFocus()

    def buscarProveedor(self,idproveedor):
        sql = "SELECT nombre FROM proveedor WHERE idproveedor='"+idproveedor+"' "
        resultados = consultasBD.ordenCruda(sql)
        if resultados==() or resultados==None or len(resultados)!=1:
            return ""
        return resultados[0][0]

    def buscarCodArt(self,codsussan):
        sql = "SELECT codartprov FROM producto_codartprov WHERE codsussan='"+codsussan+"' "
        resultados = consultasBD.ordenCruda(sql)
        if resultados==() or resultados==None or len(resultados)!=1:
            return ""
        return resultados[0][0]

    def buscarDatosSinProveedor(self):
        if self.radioButton1.GetValue():
            inicio = utiles.invertirFecha((self.datePickerCtrl1.GetLabel()).replace("/","-"))+" 00:00:00"
            fin = utiles.invertirFecha((self.datePickerCtrl2.GetLabel()).replace("/","-"))+" 23:59:59"
            aux1 = (inicio.split()[0]).replace("-","")
            aux2 = (fin.split()[0]).replace("-","")
            if aux2<aux1:
                utiles.mensaje(None,"Error en el rango fecha")
                self.datePickerCtrl1.SetFocus()
                return False,()
            condicion1 = " fecha BETWEEN '"+inicio+"' AND '"+fin+"' "
        else:
            condicion1 = ""
        if self.radioButton2.GetValue():
            condicion2 = " idDevolucion='"+self.textCtrl3.GetLabel()+"' "
            if condicion1 != "": condicion2 = " AND "+condicion2
        else:
            condicion2 = ""
        if condicion1 == "" and condicion2 == "": condicion1 = "1"
        r1 = "SELECT * FROM comprasdevoluciones "
        r2 = "WHERE "+condicion1+condicion2+" ORDER BY fecha "
        sql = r1+r2
        print sql
        resultados = consultasBD.ordenCrudaDict(sql)
        return True,resultados
    
    def buscarDatosConProveedor(self):
        idproveedor = self.textCtrl1.GetLabel()
        if self.radioButton1.GetValue():
            inicio = utiles.invertirFecha((self.datePickerCtrl1.GetLabel()).replace("/","-"))+" 00:00:00"
            fin = utiles.invertirFecha((self.datePickerCtrl2.GetLabel()).replace("/","-"))+" 23:59:59"
            aux1 = (inicio.split()[0]).replace("-","")
            aux2 = (fin.split()[0]).replace("-","")
            if aux2<aux1:
                utiles.mensaje(None,"Error en el rango fecha")
                self.datePickerCtrl1.SetFocus()
                return False,()
            condicion1 = "AND fecha BETWEEN '"+inicio+"' AND '"+fin+"' "
        else:
            condicion1 = ""
        if self.radioButton2.GetValue():
            condicion2 = "AND idDevolucion='"+self.textCtrl3.GetLabel()+"' "
        else:
            condicion2 = ""
        r1 = "SELECT * FROM comprasdevoluciones "
        r2 = "WHERE idProveedor='"+idproveedor+"' "+condicion1+condicion2
        sql = r1+r2
        resultados = consultasBD.ordenCrudaDict(sql)
        return True, resultados

    def llenarGrilla1(self,lista):
        #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
        #0            1      2      3     4        5     6
        #CodArt,PTC,CodSussan,Talle,Color,Cantidad,Monto
        #0      1   2         3     4     5        6
        totalCantidad = 0
        totalMonto = Decimal("0.00")
        for fil,item in enumerate(lista):
            idproveedor = item["idProveedor"]
            if self.textCtrl2.GetLabel()=="":
                nombre = self.buscarProveedor(idproveedor)
            else:
                nombre = self.textCtrl2.GetLabel()
            nrodoc = item["idDevolucion"]
            fecha = str(item["fecha"]).split()[0]
            fecha = utiles.invertirFecha2(fecha)
            cantidad = item["cantProductos"]
            totalCantidad+=cantidad
            monto = Decimal(str(item["montoDevolucion"])).quantize(Decimal("0.10"))
            totalMonto+=monto
            motivo = item["causaDevolucion"]
            self.grid1.SetCellValue(fil,0,idproveedor)
            self.grid1.SetCellValue(fil,1,nombre)
            self.grid1.SetCellValue(fil,2,nrodoc)
            self.grid1.SetCellValue(fil,3,fecha)
            self.grid1.SetCellValue(fil,4,str(cantidad))
            self.grid1.SetCellValue(fil,5,str(monto))
            self.grid1.SetCellValue(fil,6,str(motivo))
            self.grid1.SetCellAlignment(fil, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 5, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.AppendRows()
        self.grid1.SetCellValue(fil+1,1,"TOTAL")
        self.grid1.SetCellValue(fil+1,4,str(totalCantidad))
        self.grid1.SetCellValue(fil+1,5,str(totalMonto))
        self.grid1.SetCellAlignment(fil+1, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellAlignment(fil+1, 5, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.ajustarAnchoColumnas()
        if self.grid1.GetNumberRows()==2:
            self.grid1.SetGridCursor(0,0)
            self.OnDobleClickGrid1(None)

    def OnBuscar(self, event):
        if self.textCtrl1.GetLabel()=="":
            exito,resultados = self.buscarDatosSinProveedor()
        else:
            exito,resultados = self.buscarDatosConProveedor()
        if not exito:
            return
        self.OnLimpiar(None,False)
        self.llenarGrilla1(resultados)
        self.button5.Enable(True)

    def OnDobleClickGrid1(self, event):
        #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
        #0            1      2      3     4        5     6
        fil = self.grid1.GetGridCursorRow()
        col = self.grid1.GetGridCursorCol()
        self.fila = self.grid1.GetGridCursorRow()
        nrodoc = self.grid1.GetCellValue(fil,2)
        r1 = "SELECT p1.ptc,p1.codsussan,p1.talle,p1.color,p1.cantidad, "
        r2 = "       p1.monto,p1.otro,p2.descri "
        r3 = "FROM "
        r4 = "  (SELECT * FROM comprasdevoluciones_items "
        r5 = "   WHERE idDevolucion='"+nrodoc+"') AS p1, "
        r6 = "  productos AS p2 "
        r7 = "WHERE p1.codsussan=p2.codsussan "
        sql = r1+r2+r3+r4+r5+r6+r7
        resultados = consultasBD.ordenCrudaDict(sql)
        self.grid2.ClearGrid()
        for fil in xrange(self.grid2.GetNumberRows()):
            self.grid2.DeleteRows()
        self.grid2.AppendRows()
        for fil,item in enumerate(resultados):
            ptc = item["ptc"]
            codsussan = item["codsussan"]
            codartprov = self.buscarCodArt(codsussan)
            descripcion = item["descri"]
            talle = str(item["talle"])
            color = str(item["color"])
            cantidad = str(item["cantidad"])
            monto = str(Decimal(str(item["monto"])).quantize(Decimal("0.10")))
            otro = item["otro"]
            #CodArt,PTC,CodSussan,Descripcion,Talle,Color,Cantidad,Monto
            #0      1   2         3           4     5     6        7
            self.grid2.SetCellValue(fil,0,codartprov)
            self.grid2.SetCellValue(fil,1,ptc)
            self.grid2.SetCellValue(fil,2,codsussan)
            self.grid2.SetCellValue(fil,3,descripcion)
            self.grid2.SetCellValue(fil,4,talle)
            self.grid2.SetCellValue(fil,5,color)
            self.grid2.SetCellValue(fil,6,cantidad)
            self.grid2.SetCellValue(fil,7,monto)

            self.grid1.SetCellAlignment(fil, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 5, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 6, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 7, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)

            self.grid2.AppendRows()
        self.ajustarAnchoColumnas()

    def OnImprimir(self, event):
        if self.grid2.GetNumberRows()>1:
            self.imprimirConDetalle()
            return
        print "Imprimir sin detalle"
        f=open("c:\\erpsussan.doc\\reporte-ComprasDevolucionListar.html","w")
        numeroPagina = 1
        nrosuc,nombresuc = utiles.datosSucursal()
        
        #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
        #0            1      2      3     4        5     6
        totalItemPorPagina = 55
        totalPaginas = int(self.grid1.GetNumberRows()-1) / totalItemPorPagina 
        totalPaginas+= 1

        def encabezadoPagina(texto):
            fecha = utiles.getfechaTime()
            a = '<table width="100%" cellspacing="0" border="0">\n'
            a+= '<tr>\n'
            a+= '<td valign="center" align="left" width="33%">'
            a+= 'SUSSAN BOUTIQUE<br>DEVOLUCIONES<br> '
            a+= '<br></td>\n<td valign="center" align="left" width="34%">'
            a+= '<br>'
            a+= '</td>\n'
            a+= '<td valign="center" align="right" width="33%">'+fecha
            a+= '<br>P&aacute;gina '+str(numeroPagina)+' / '+str(totalPaginas)+'</td>\n'
            a+= '</tr>\n'
            a+= '</table>\n'
            texto+= a
            return texto
        
        def encabezadoTabla(texto):
            #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
            #0            1      2      3     4        5     6
            a = '<hr>'
            tama = '"0.05"'
            a+= '<table width="100%" cellspacing="1" border="0"> \n'
            a+= '<tr>\n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Orden</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Cod. Proveedor</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Nombre</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>N&uacute;mero</font></td> \n'
            a+= '<td valign="top" align="center"><font size='+tama+'>Fecha</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Cantidad</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Monto</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Motivo</font></td> \n'
            a+= '</tr> \n'
            a+= '<tr>\n'
            a+= '<td colspan="8"><hr></td>\n'
            a+= '</tr>\n'
            texto+= a
            return texto
        
        cadena = '<?xml version="1.0" encoding="utf-8" ?> \n'
        cadena+= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> \n'
        cadena+= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> \n'
        cadena+= '<head> \n'
        cadena+= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \n'
        cadena+= '<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> \n'
        cadena+= '<title>Sussan Boutique</title> \n'
        cadena+= '</head> \n'
        cadena+= '<body> \n'

        cadena = encabezadoPagina(cadena)
        cadena = encabezadoTabla(cadena)
        f.write(cadena)

        renglon = 0
        for i in xrange(self.grid1.GetNumberRows()-1):
            #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
            #0            1      2      3     4        5     6
            orden = str(i+1)
            idproveedor = self.grid1.GetCellValue(i,0)
            nombre = self.grid1.GetCellValue(i,1)
            nrodoc = self.grid1.GetCellValue(i,2)
            fecha = self.grid1.GetCellValue(i,3)
            cantidad = self.grid1.GetCellValue(i,4)
            monto = self.grid1.GetCellValue(i,5)
            motivo = self.grid1.GetCellValue(i,6)
            
            tama = '"0.2"'
            cadena = '<tr> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+orden+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+idproveedor+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+nombre+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+nrodoc+'</font></td> \n'
            cadena+= '<td valign="top" align="center"><font size='+tama+'>'+fecha+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+cantidad+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+monto+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+motivo+'</font></td> \n'
            cadena+= '</tr>\n'
            f.write(cadena)
            
            renglon+= 1
            
            if renglon == totalItemPorPagina :
                renglon = 0
                numeroPagina+= 1
                cadena = encabezadoPagina("")
                cadena = encabezadoTabla(cadena)
                f.write(cadena)

        idproveedor = self.grid1.GetCellValue(i+1,0)
        nombre = self.grid1.GetCellValue(i+1,1)
        nrodoc = self.grid1.GetCellValue(i+1,2)
        fecha = self.grid1.GetCellValue(i+1,3)
        cantidad = self.grid1.GetCellValue(i+1,4)
        monto = self.grid1.GetCellValue(i+1,5)
        motivo = self.grid1.GetCellValue(i+1,6)
        
        tama = '"0.2"'
        cadena = '<tr> \n'
        cadena+= '<td valign="top" align="right"><font size='+tama+'></font></td> \n'
        cadena+= '<td valign="top" align="left"><font size='+tama+'><strong>'+idproveedor+'</strong></font></td> \n'
        cadena+= '<td valign="top" align="left"><font size='+tama+'><strong>'+nombre+'</strong></font></td> \n'
        cadena+= '<td valign="top" align="left"><font size='+tama+'><strong>'+nrodoc+'</strong></font></td> \n'
        cadena+= '<td valign="top" align="center"><font size='+tama+'><strong>'+fecha+'</strong></font></td> \n'
        cadena+= '<td valign="top" align="right"><font size='+tama+'><strong>'+cantidad+'</strong></font></td> \n'
        cadena+= '<td valign="top" align="right"><font size='+tama+'><strong>'+monto+'</strong></font></td> \n'
        cadena+= '<td valign="top" align="right"><font size='+tama+'>'+motivo+'</font></td> \n'
        cadena+= '</tr>\n'
        f.write(cadena)

        tama = '"0.2"'
            
        cadena = '</table>\n'
        f.write(cadena)
        f.close()

        import os
        os.system("taskkill /IM firefox.exe /F")
        os.system("c:\\explorer.lnk c:\\erpsussan.doc\\reporte-ComprasDevolucionListar.html")
        
    def imprimirConDetalle(self):
        print "Imprimir renglon",self.fila+1
        f=open("c:\\erpsussan.doc\\reporte-ComprasDevolucionListar.html","w")
        numeroPagina = 1
        nrosuc,nombresuc = utiles.datosSucursal()
        
        #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
        #0            1      2      3     4        5     6
        #CodArt,PTC,CodSussan,Descripcion,Talle,Color,Cantidad,Monto
        #0      1   2         3           4     5     6        7
        totalItemPorPagina = 55
        totalPaginas = int(self.grid1.GetNumberRows()-1) / totalItemPorPagina 
        totalPaginas+= 1

        def encabezadoPagina(texto):
            fecha = utiles.getfechaTime()
            a = '<table width="100%" cellspacing="0" border="0">\n'
            a+= '<tr>\n'
            a+= '<td valign="center" align="left" width="33%">'
            a+= 'SUSSAN BOUTIQUE<br>DEVOLUCIONES<br> '
            a+= '<br></td>\n<td valign="center" align="left" width="34%">'
            a+= '<br>'
            a+= '</td>\n'
            a+= '<td valign="center" align="right" width="33%">'+fecha
            a+= '<br>P&aacute;gina '+str(numeroPagina)+' / '+str(totalPaginas)+'</td>\n'
            a+= '</tr>\n'
            a+= '</table>\n'
            #CodProveedor,Nombre,NroDoc,Fecha,Cantidad,Monto,Motivo
            #0            1      2      3     4        5     6
            idproveedor = self.grid1.GetCellValue(self.fila,0)
            nombre = self.grid1.GetCellValue(self.fila,1)
            fecha = self.grid1.GetCellValue(self.fila,3)
            motivo = self.grid1.GetCellValue(self.fila,6)
            cantidad = self.grid1.GetCellValue(self.fila,4)
            monto = self.grid1.GetCellValue(self.fila,5)
            a+= 'Proveedor: '+nombre+' / '+idproveedor+'<br>'
            a+= 'Fecha devolucion: '+fecha+' Motivo: '+motivo+'<br>'
            a+= 'Cantidad: '+cantidad+' Monto: $'+monto+'<br>'
            
            texto+= a
            return texto
        
        def encabezadoTabla(texto):
        #CodArt,PTC,CodSussan,Descripcion,Talle,Color,Cantidad,Monto
        #0      1   2         3           4     5     6        7
            a = '<hr>'
            tama = '"0.05"'
            a+= '<table width="100%" cellspacing="1" border="0"> \n'
            a+= '<tr>\n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Orden</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Cod.Art.<br>Proveedor</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>P.T.C.</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Cod.Sussan</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Descripci&oacute;n</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Talle</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Color</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Cantidad</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Monto</font></td> \n'
            a+= '</tr> \n'
            a+= '<tr>\n'
            a+= '<td colspan="9"><hr></td>\n'
            a+= '</tr>\n'
            texto+= a
            return texto
        
        cadena = '<?xml version="1.0" encoding="utf-8" ?> \n'
        cadena+= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> \n'
        cadena+= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> \n'
        cadena+= '<head> \n'
        cadena+= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \n'
        cadena+= '<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> \n'
        cadena+= '<title>Sussan Boutique</title> \n'
        cadena+= '</head> \n'
        cadena+= '<body> \n'

        cadena = encabezadoPagina(cadena)
        cadena = encabezadoTabla(cadena)
        f.write(cadena)

        renglon = 0
        for i in xrange(self.grid2.GetNumberRows()-1):
        #CodArt,PTC,CodSussan,Descripcion,Talle,Color,Cantidad,Monto
        #0      1   2         3           4     5     6        7
            orden = str(i+1)
            codartprov = self.grid2.GetCellValue(i,0)
            ptc = self.grid2.GetCellValue(i,1)
            codsussan = self.grid2.GetCellValue(i,2)
            descripcion = self.grid2.GetCellValue(i,3)
            talle = self.grid2.GetCellValue(i,4)
            color = self.grid2.GetCellValue(i,5)
            cantidad = self.grid2.GetCellValue(i,6)
            monto = self.grid2.GetCellValue(i,7)
            
            tama = '"0.2"'
            cadena = '<tr> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+orden+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+codartprov+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+ptc+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+codsussan+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+descripcion+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+talle+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+color+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+cantidad+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+monto+'</font></td> \n'
            cadena+= '</tr>\n'
            f.write(cadena)
            
            renglon+= 1
            
            if renglon == totalItemPorPagina :
                renglon = 0
                numeroPagina+= 1
                cadena = encabezadoPagina("")
                cadena = encabezadoTabla(cadena)
                f.write(cadena)

        tama = '"0.2"'
            
        cadena = '</table>\n'
        f.write(cadena)
        f.close()

        import os
        os.system("taskkill /IM firefox.exe /F")
        os.system("c:\\explorer.lnk c:\\erpsussan.doc\\reporte-ComprasDevolucionListar.html")
